package com.holly.unit.gen.api.util;

import cn.hutool.core.util.StrUtil;

/**
 * 类描述: 数据库字段类型转化成JAVA属性类型
 *
 * @author fxr
 * @version 1.0.0
 * @date 2022/1/15 14:25
 */
public class DbType2JavaTypeUtil {

    public static String columnType2JavaType(String dataType,String precision,String scale) {
        if (dataType.contains("char")) {
            dataType = "java.lang.String";
        } else if (dataType.contains("int")) {
            dataType = "java.lang.Integer";
        } else if (dataType.contains("float")) {
            dataType = "java.lang.Float";
        } else if (dataType.contains("double")) {
            dataType = "java.lang.Double";
        } else if (dataType.contains("number")) {
            if(StrUtil.isNotBlank(scale) && Integer.parseInt(scale)>0){
                dataType = "java.math.BigDecimal";
            }else if(StrUtil.isNotBlank(precision) && Integer.parseInt(precision)>10){
                dataType = "java.lang.Long";
            }else{
                dataType = "java.lang.Integer";
            }
        } else if (dataType.contains("decimal")) {
            dataType = "java.math.BigDecimal";
        }else if (dataType.contains("date")) {
            dataType = "java.util.Date";
        } else if (dataType.contains("time")) {
            dataType = "java.util.Date";
        } else if (dataType.contains("blob")) {
            dataType = "byte[]";
        } else if (dataType.contains("clob")) {
            dataType = "java.sql.Clob";
        } else if (dataType.contains("numeric")) {
            dataType = "java.math.BigDecimal";
        } else {
            dataType = "java.lang.Object";
        }
        return dataType;
    }

}
